import { NextRequest, NextResponse } from 'next/server';
import { UserModel } from '@/models/user';

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    const { username, password, email } = body;
    
    console.log(`尝试创建用户: ${username}`);
    
    // 验证必填字段
    if (!username || !password || !email) {
      console.log('创建失败: 缺少必要字段');
      return NextResponse.json(
        { error: '用户名、密码和邮箱不能为空' },
        { status: 400 }
      );
    }
    
    // 检查用户名是否已存在
    const existingUser = await UserModel.findByUsername(username);
    if (existingUser) {
      console.log('创建失败: 用户名已存在');
      return NextResponse.json(
        { error: '用户名已存在' },
        { status: 400 }
      );
    }
    
    // 检查邮箱是否已存在
    const existingEmail = await UserModel.findByEmail(email);
    if (existingEmail) {
      console.log('创建失败: 邮箱已存在');
      return NextResponse.json(
        { error: '邮箱已存在' },
        { status: 400 }
      );
    }
    
    // 创建用户
    const userId = await UserModel.create({ username, password, email });
    
    console.log(`用户创建成功, ID: ${userId}`);
    
    return NextResponse.json({
      message: '用户创建成功',
      userId,
      username
    });
    
  } catch (error) {
    console.error('创建用户过程中发生错误:', error);
    return NextResponse.json(
      { error: '服务器错误，请稍后再试' },
      { status: 500 }
    );
  }
}
